#ifndef _USER_MSG_H
#define _USER_MSG_H

#include "main.h"

#define MSG_FIFO_SIZE 		40		// 支持最大FIFO消息个数

// modbus某功能码的消息代号
enum
{
	MSG_NONE = 0,
	MSG_MODS_01H,
	MSG_MODS_02H,
	MSG_MODS_03H,
	MSG_MODS_04H,
	MSG_MODS_05H,
	MSG_MODS_06H,
	MSG_MODS_10H,
};

/* FIFO变量 */
typedef struct
{
	uint16_t MsgCode;		// 消息代码
	uint32_t MsgParam;	// 消息的数据体	暂时未用到 都使用0
} MSG_T;

/* 按键FIFO用到变量 */
typedef struct
{
	MSG_T Buf[MSG_FIFO_SIZE];		/* 消息缓冲区 */
	uint8_t Read;								/* 缓冲区读指针1 */
	uint8_t Write;							/* 缓冲区写指针 */
	uint8_t Read2;							/* 缓冲区读指针2 */
}MSG_FIFO_T;

void bsp_InitMsg(void);

void bsp_PutMsg(uint16_t msgCode, uint32_t msgParam);

uint8_t bsp_GetMsg(MSG_T* pMsg);

void bsp_ClearMsg(void);
#endif

